Computer messaging is concerned with routing data in the form of messages from one or more messaging clients (sending clients) to one or more other messaging clients (receiving clients). Various different protocols are used to convert data into one or more messages (e.g., application layer protocols), to define the syntax of a message (e.g., wire protocols), and to route messages from a sending client to a receiving client (e.g., transport layer protocols).
Application layer protocols, such as Hypertext Transport Protocol (HTTP), MQ Telemetry Transport (MQTT), Advanced Message Queueing Protocol (AMQP), etc., are used to prepare data from various computer applications into one or more messages for transmission over a network and to convert received data to messages consumable by computer applications. Message syntax is determined according to one or more wire protocols, such as eXtensible Markup Language (XML), Java Script Object Notation (JSON), etc. Transport layer protocols, such as Transmission Control Protocol/Internet Protocol (TCP/IP) provide standards for converting messages to a set of data packets, routing the data packets to the appropriate receiving client or clients, and reconstructing the message from received data packets. For example, the TCP protocol provides standards for converting a message to data packets and for reconstructing the data packets into the original message. The IP protocol provides standards for addressing data packets to the appropriate receiving client or clients.